UNIXとは何か?
UNIXとは完全なマルチユーザー・マルチタスクを実現したOSの一つです。
・OS:Operating System…コンピューターを操作する際、もっとも基礎となるプログラムの事。
マルチユーザー・マルチタスクを実現するための非常に高いシステムの安定性、ネットワーク機能の充実、
セキュリティーの高さ、こういったものに関してUNIXに並ぶOSは存在しないと言われています。
UNIXは、とにかく第一にシステムそのものがクラッシュ(フリーズとも言える)しないように設計されています。
(もしエラーが発見されたとしても、すぐに修正ファイルがアップされていきます)。
この徹底したシステム全般における高い堅牢性から、24時間稼働していなければ
ならないサーバー(インターネットサーバー)に数多く使用される事になりました。
ここでは、その中でUNIXの一つである「FreeBSD」を中心に話を進めたいと思っています。
FreeBSDは、バークレーライセンスというオープンライセンスの元に、
無料で公開されているUNIXの一つです。
かの有名なMS社のOS「Windows」には、98,200,NT,XP等のシリーズがありますが、それと同様に
「UNIX」のシリーズの一つとして「FreeBSD」(そして「Linux」が)が存在していると考えればいいと思います。
FreeBSDは、そのオープンライセンスにより、カーネルと呼ばれるOSのメインプログラムは当然の事、
コンパイルしたプログラム、そのソースコードまで、
システムに関する、ありとあらゆるものを無料で手に入れることが可能になっています。
例えば
・インターネットからダウンロードが可能
・雑誌の付録等で入手が可能(UNIX USER等)
・FreeBSD関連雑誌の付属CDからも入手可能。
そして、FreeBSDは「PC-UNIX」とも呼ばれます。
これは、ごく一般的なAT互換機…Personal
Computer(通称パソコン)で動くUNIXであることを指しています。
高速なインターネット回線を持っているのなら、インストール時に直接インターネットから
必要データをダウンロードしつつインストールと言った事も可能です。
(ブートディスクの製作は必要になりますが)
開発は日々精力的に続けられており、日々進化しています。
日本のFreeBSD総本山
「UNIX」と「PC-UNIX」の具体的な違いを説明しておきます。
「PC-UNIX」とは、UNIXの一つであることに違いはないわけですが、
具体的には「インテル社のPemtiumシリーズ、もしくはその互換であるx86アーキテクチャCPU。
たとえばAMD社のAthlon等のCPU上で動作するUNIX」の事を指して言います。
実際にPC-UNIXというジャンルはありませんが、元々UNIXは専用のCPU上でのみ動作していました。
それが近年になってx86アーキテクチャCPUに移植されて動くようになったため、
それと区別するようについた名称だと思われます。
今、世界で一番有名で一番使用されているPC-UNIXといえば、「Linux」です。
「Linux」も、「FreeBSD」とはまた違った流れを持つ「PC-UNIX」の一つです。
PC-UNXのどこがそんなに素晴らしいかと言えば、
昔UNIXは「高性能であるが、非常に(とんでもなく)高価なサーバー」に使用されてきました。
そのUNIXが一般ユーザーが普段使用しているようなパソコンで簡単に動くようになったという事実は、
インターネットの普及に従って、非常に大きな意味を持ってきています。
システム的には、先ほど述べたように「とにかくシステムが安定している」と言うことです。
サーバーのように、1年365日ずっと安定して動いていていなければいけない
(そして、動いている間、ずっと管理者が見張っているわけにはいかない)ような
コンピューターにとって、これは非常に重要なことです。
一週間コンピューターを付けっぱなしにしておくと、再起動しないとコンピューターの動作が止まる…。
パソコンのように個人使用の場合はこれで十分なのですが、
基本的に一年中電源付けっぱなしが前提のサーバーがこれでは、実用的には遠すぎます。
一年、二年間電源を付けっぱなしにしてもシステム的にまず不具合は起こしません。
(電源が故障したとかはハードウェア的なものは除く)
こういったシステム面での高い安定性を持っているのがUNIXです。
マルチタスクが実現されている、というもの大きな利点です。
複数ユーザーによる要求を一度にきちんと処理出来ると言うことは、
インターネットサーバーのように一度に数多くのユーザーから処理要求が来る状況にも、
きちんと対応出来ることになります。(ただし、CPUの処理能力内で)
しかし、注意して欲しいのはサーバー上で実際に動いているソフトの大半はUNIXそのものとは関係ないという事です。
インターネットサーバーにおいて、UNIXはその動作環境をもっとも保障するOSだったため
使用されることが多くなり、その結果、UNIXで動くように様々なサーバーソフトが制作・移植されました。
インターネット(WWW)が一般に普及するにしたがってサーバーソフトであるUNIXが普及し、
それに合わせて注目度も高まってきたわけです。
UNIXの素晴らしい所を、商業的な(お金の)側面から考えてみます。
実際にサーバーを運用するとして、MS社のソフトのみを使用して様々なサーバー必須とされる
機能を持ったサーバーを作ろうとすれば、おそらく市販ソフトだけで50万以上はかかるでしょう。
しかし、「FreeBSD」や「Linux」といったPC-UNIXと、それで動くサーバーソフトの大半は
「GPL(オープンライセンスの一種)」として無料で公開されています。
ハードウェアを除けば、理論上、「0円」で同等(もしくはそれ以上)の機能を持つサーバーを作り上げることが出来ます。
その代わり、当然ながらメーカーなんてものは存在しないので、正式なサポートは一切受けれません。
要求されるのは知識と経験と実力です……
といっても、インターネットで調べれば、必要な情報は99%は簡単に手に入れることが出来るのですが。
それというのも、今までは、一部の技術者だけの専門知識だったものが、
インターネットの普及によって、より一般化(と言っても十分に専門的だけど)したというのが一番の理由です。
もし常時接続などのインターネット環境が整っているのならば、UNIXについて学ぶことは難しいことではないはずです。
しかし一般企業で使用する基幹ソフトが「正式サポートが受けれない」のは致命的な問題であり、
それゆえ「UNIXは良いと聞いてるけど、やっぱりWindows」が主流なのも事実です。
しかし、今ではLinuxベンダーの製品を買うことにより、Linuxならば正式サポートが受けれるようになっています。
そして、UNIXに実装されているGUIの「X-Window」は、
多くの高性能のウィンドウマネージャの登場により、個人使用でもMS-Windowsをも圧倒しつつあります。
現段階に置いて、無料のPC-UNIXを導入するとなれば、
それは「Linux」もしくは「FreeBSD」の二択になってくると思います。
(他にもNetBSDなど、数多くの高性能な無料UNIXが存在しますが、ここでは述べません)
公開されている情報量の多さと安定性、敷居の低さ、そして金額から言って、間違いなくこの二択になると思います。
では、どちらがいいのか?
これは、「趣味の問題」としか言えません。
PC-UNIXとしては、どちらも十分な性能を備えていて、どちらも良いところと悪いところ(個性)があり、
性能上の甲乙を付けることは不可能だと思います。
そこで、緋色がFreeBSDを使用するに至った、FreeBSDとLinuxの大きな違いを挙げてみます。
(もっと具体的には、後のコラムで改めて書きたいと思います。とりあえずおさわり程度と思って頂いて結構です)
まずLinuxは、数多くのベンダーから「ディストリビューション」というパッケージ化された形で配布されています。
「ディストリビューション」とはLinux(つまりOS本体のみ)に、様々なサーバーやワークステーションに
必要とされるソフトを付属して、インストーラーを付けて一つのパッケージ(主にCD形式で配布)としたものです。
この中で、有名なのが「RedHat Linux」や「Turbo
Linux」等です。
こういった完成されたものがGPLライセンスにしたがって「正式サポートなし」として、
無料で公開されています。これを直接インターネット上から、もしくは雑誌付属CDから入手可能です。
このディストリビューションはベンダーが独自に作り上げています。
一見してどのバーションのカーネル、どのソフトを使用しているのか全く分からない、等の問題もあります。
そのためLinuxはベンダーごとに特色がありますが、逆に、このディストリビューションではうまく行くのに、
こっちじゃうまく行かない。ディレクトリ構造が違うという問題を引き起こす時があります。
一見して、ごちゃごちゃしすぎているのです。…まぁ、それこそがLinuxの利点でもあるのですが。
それに比べ、FreeBSDは、バージョン管理のためのブランチというものがあってバージョンが整然と並んでいます。
LinuxはOSとソフトが別々なのに対し、FreeBSDはOS+基本ソフトを一つのものとして配布しています。
しっかりとバージョン管理されているので、自分がどのバージョンを使えばいいのかが簡単に分かります。
しかし、Xウィンドウ目当てのユーザーが使用するなら無条件にLinuxをお勧めします。
Linuxをインストールすると「X-Window」というMS-WindowsライクなGUIプログラムがインストールされ、
自動的に起動時に立ち上がります。マウス対応で、これが非常によくできています。
いまでは、様々なソフトの設定を、すべてこのX-Window上で簡単に行うことが可能になっており、
これがよりいっそうUNIXを使う敷居を低くしているものと思われます。
そしてこういった「X-Window」に関しては、FreeBSDはLinuxに勝っているとは言えない現状があります。
しかし、古くさい事とは思うものの、緋色(管理人)にとっては、こういったGUI(X-Window上)で設定するのは
どうも好きではありません。古き良き方法として、やはりTelnetでリモート接続してCUI(コマンドライン)で
VI等のエディタとキーボードを駆使して設定ファイルを書き換えるのが正しい姿じゃないかと思わずにはいられません。
(じゃないと遠隔管理出来ないし…)
ということで、緋色(管理人)はサーバーを作るならば、FreeBSDだと思っています。
このあたりは個人によると思いますが、やっぱり緋色は(個人的な偏見も含めつつ)
FreeBSDを使用するのがモアベターだと思っています。
サーバーのセットアップ手順を簡単に述べると、
・FreeBSDの動作可能最低限プログラムのみ(カーネル・カーネルソース・BINプログラム等)をPCにインストール。
・ネットワーク関係(ここではIPのみ)の設定変更と動作確認。
・カーネルを動作環境に合わせて再構築。
・ネットワーク関係(主にNATとか)の設定。
この時点でルーターとしての最低限の機能は出来上がりますので、
再起動後動作を確認したらサーバーからキーボードを抜いて安置します。
・必要なソフトの最新ソースを入手して、コンパイルしてインストール
…という手順はすべてTelnetやSSHによる遠隔操作で設定
こうして必要最低限のみインストールしておけば、それだけセキュリティホールを作らない事にもなります。
遠隔操作が何故良いかというと、たとえば手元のWindowsよりTelnetで接続して遠隔操作することにより、
サーバーの設定を変更しつつ、分からないことがあったらインターネットブラウザでリアルタイムに調べる事が出来る。
必要なソースコードはこのブラウザ経由で手に入れて、FTPでサーバーに転送、ということが可能で、
様々な面倒な手順がかなり簡略化されます。
それならLinuxでX-Windowを使えば一台のPCで問題ないじゃないか、と言う説もありますが、
やはりサーバーにX-Windowなどという不要なソフトは入れるべきではない!と主張したいわけで……。
Linuxをインストールすると、(緋色には)必要最低限のつもりが理解不能なファイルがインストールされつつ、
ややこしいディレクトリ構造に目眩を覚えた、という事実があります。不要なデーモンもなかなか止められず、
FreeBSDなら10分で終わるような設定をするだけで一日を費やした記憶があります。
ディストリビューション毎の独特な設定もあって、一筋縄では行かない部分もあります。
ある意味X-Windowからの設定を前提とされている感じがして、どこをどういじくればいいのか
分からない、ややこしい、と半泣きになったことも多々あります。
(でもXinetdとかは結構好きなんですけどね…)と言うことで、経験上Linuxはパスの方向で…。
という事で、FreeBSDを使用して、どれだけスマートに、
使用目的に合わせたもっとも効率の良いインターネットサーバーを如何に製作出来るか?
をこれ以降の目標としていこうかと思ってます。
[一つ上に戻る] |